import java.util.LinkedList;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: LIUYANJIAO
 * Date: 2024-11-01
 * Time: 16:42
 */
//第二关：利用单链表实现集合基本运算
class Main {
    //并集
    public static List<Integer> union(List l1,List l2){
        List<Integer> l=new LinkedList<>();
        for (int i = 0; i < l1.size(); i++) {
            l.add((Integer) l1.get(i));
        }
        for (int i = 0; i < l2.size(); i++) {
            for (int j = 0; j < l1.size();j++) {
               if(l2.get(i).equals(l1.get(j))){
                   break;
               }
               if(j==l2.size()-1){
                   l.add((Integer) l2.get(i));
               }
            }

        }

        return l;
    }
    public static List<Integer> intersection(List l1,List l2){
        List<Integer> l=new LinkedList<>();
        for (int i = 0; i < l1.size(); i++) {
            for (int j = 0; j < l2.size(); j++) {
                if(l1.get(i).equals(l2.get(j))){
                    l.add((Integer) l1.get(i));
                }
            }
        }
        return l;
    }
    //链表实验
    //任务二
    //差
    public static List<Integer> diff(List l1,List l2){
        //创建一个新链表存储差集
        List<Integer> l=new LinkedList<>();
        //遍历比较
        for (int i = 0; i < l1.size(); i++) {
            for (int j = 0; j < l2.size(); j++) {
                if(l1.get(i).equals(l2.get(j))){
                    break;
                }
                if(j==l2.size()-1){
                    l.add((Integer) l1.get(i));
                }
            }
        }
        return l;
    }
    public static void main(String[] args) {
        //创建三个链表

        List<Integer> l1=new LinkedList<>();
        List<Integer> l2=new LinkedList<>();
        //初始化l1和l2
        l1.add(1);
        l1.add(2);
        l1.add(3);
        l1.add(4);
        l2.add(2);
        l2.add(11);
        System.out.println("集合l1:"+l1);
        System.out.println("集合l2:"+l2);

        //并集
        System.out.println("l1和l2的并集："+union(l1,l2));
        //交集
        System.out.println("l1和l2的交集："+intersection(l1,l2));
        //差集
        System.out.println("l1-l2："+diff(l1,l2));
        System.out.println("l2-l1："+diff(l2,l1));

    }
}